//package pri.black.dogview.controller;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.access.prepost.PreAuthorize;
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.servlet.ModelAndView;
//import org.springframework.web.servlet.View;
//import pri.black.dogview.domain.DeviceGpsLog;
//import pri.black.dogview.domain.DeviceStatus;
//import pri.black.dogview.service.IDeviceGpsLogService;
//import pri.black.dogview.service.IDeviceStatusService;
//
//import java.util.*;
//
//@Controller
//public class ViewController {
//
//    @Autowired
//    private IDeviceGpsLogService deviceGpsLogService;
//
//    @Autowired
//    private IDeviceStatusService deviceStatusService;
//
//    List<DeviceGpsLog> list = null;
//
//    @RequestMapping("/")
//    String indexView(){
//        return "index";
//    }
//
//    private String key(String lng, String lat) {
//        int rate = 4;
//        return lng.substring(0,3+rate) + "," + lat.substring(0,2+rate);
//    }
//
//    @GetMapping("/dogs-location")
//    String dogLocation(Model model) {
//        if (list != null) {
//
//        }else {
//            list = deviceGpsLogService.lambdaQuery().orderByDesc(DeviceGpsLog::getId).list();
//            list = list.stream().filter(e -> e.getSource() == 1).toList();
//        }
//
//
//        List<DeviceGpsLog> temp = new LinkedList<>();
//        Set<String> templ = new HashSet<>();
//        for (DeviceGpsLog deviceGpsLog : list) {
//            if (templ.contains(key(deviceGpsLog.getLongitude() , deviceGpsLog.getLatitude()))) {
//                continue;
//            }
//            templ.add(key(deviceGpsLog.getLongitude() , deviceGpsLog.getLatitude()));
//            temp.add(deviceGpsLog);
//        }
//        model.addAttribute("logs", temp);
//        model.addAttribute("logslatest", temp.subList(1,5));
//        return "dogLocation";
//    }
//
//    @GetMapping("/dogs-status")
//    String dogStatus(Model model) {
//        List<DeviceStatus> list = deviceStatusService.lambdaQuery().orderByDesc(DeviceStatus::getId).list();
//        model.addAttribute("logs", list);
//        return "dogStatus";
//    }
//
//    @GetMapping("/loginView")
//    String loginView(){
//        return "login";
//    }
//}
